/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.gob.fonafe.service.impl;

import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import pe.gob.fonafe.dao.AdministradorDAO;
import pe.gob.fonafe.domain.EmpresaBean;
import pe.gob.fonafe.domain.PerfilBean;
import pe.gob.fonafe.domain.UsuarioBean;
import pe.gob.fonafe.service.AdministradorService;

/**
 *
 * @author Irving
 */
@Service
public class AdministradorServiceImp implements AdministradorService{

    private static final Logger logger = Logger.getLogger(AdministradorServiceImp.class);

    @Autowired
    private AdministradorDAO administradorDAO;
    
    public List<UsuarioBean> buscarUsuarios(int tb_Perfil_id_perfil, int tb_Empresa_id_empresa, String nombreCompleto, String email) {
        List<UsuarioBean>listResult=new ArrayList<UsuarioBean>();
        try{
            listResult = administradorDAO.buscarUsuarios(tb_Perfil_id_perfil, tb_Empresa_id_empresa, nombreCompleto, email);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        logger.info("Total LIst Service[" + listResult.size() + "]");
        return listResult;
    }
    
    public List<EmpresaBean> listarEmpresas() {
        List<EmpresaBean>listResult=new ArrayList<EmpresaBean>();
        try{
            listResult = administradorDAO.listarEmpresas();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        logger.info("Total LIst Service[" + listResult.size() + "]");
        return listResult;
    }

    public List<PerfilBean> listarPerfiles() {
         List<PerfilBean>listResult=new ArrayList<PerfilBean>();
        try{
            listResult = administradorDAO.listarPerfiles();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        logger.info("Total LIst Service[" + listResult.size() + "]");
        return listResult;
    }

    public String[] actualizarUsuario(UsuarioBean usuarioBean) {
        String[] outPutsUsuario = new String[2];
        try{
            outPutsUsuario = administradorDAO.actualizarUsuario(usuarioBean);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsUsuario;
    }
    
    public String[] actualizarPerfil(PerfilBean perfilBean) {
        String[] outPutsUsuario = new String[2];
        try{
            outPutsUsuario = administradorDAO.actualizarPerfil(perfilBean);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsUsuario;
    }
    
     public PerfilBean buscarPerfil(int id_perfil) {          
         PerfilBean perfilBean=new PerfilBean();
        try{
            perfilBean = (PerfilBean) administradorDAO.buscarPerfil(id_perfil);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        
        return perfilBean;
    }
    
    public String[] eliminarPerfil(int id_perfil) {
        String[] outPutsUsuario = new String[2];
        try{
            outPutsUsuario = administradorDAO.eliminarPerfil(id_perfil);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsUsuario;
    }

    public String[] guardarNuevoUsuario(UsuarioBean usuarioBean) {
        String[] outPutsUsuario = new String[2];
        try{
            outPutsUsuario = administradorDAO.guardarNuevoUsuario(usuarioBean);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsUsuario;
    }

    public String[] eliminaUsuario(int idUsuario) {
        String[] outPutsUsuario = new String[2];
        try{
            outPutsUsuario = administradorDAO.eliminaUsuario(idUsuario);
        }catch(Exception ex){
            ex.printStackTrace();
            logger.error(ex);
        }
        return outPutsUsuario;
    }

   
    
}
